import React, { memo, useEffect, useState } from 'react'
import { RightWrapper } from './style'
import IconGlobal from '@/assets/svg/icon_global'
import IconMenu from '@/assets/svg/icon_menu'
import IconAvatar from '@/assets/svg/icon_avatar'

const HeaderRight = memo(() => {
  // panel 的显示和隐藏
  const [showPanel, setShowPanel] = useState(false)

  function handleProfileHandle() {
    setShowPanel(true)
  }

  // 副作用代码
  useEffect(() => {
    function windowHandleClick() {
      setShowPanel(false)
    }

    // 将冒泡更改为捕获
    window.addEventListener('click', windowHandleClick, true)

    return () => {
      // 取消监听
      window.removeEventListener('click', windowHandleClick, true)
    }
  }, [])

  return (
    <RightWrapper>
      <div className="btns">
        <span className="btn">登录</span>
        <span className="btn">注册</span>
        <span className="btn">
          <IconGlobal />
        </span>
      </div>
      <div className="profile" onClick={handleProfileHandle}>
        <IconMenu />
        <IconAvatar />
        {showPanel && (
          <div className="panel">
            <div className="top">
              <div className="item register">注册</div>
              <div className="item login">登录</div>
            </div>
            <div className="bottom">
              <div className="item">出租房源</div>
              <div className="item">开展体验</div>
              <div className="item">帮助</div>
            </div>
          </div>
        )}
      </div>
    </RightWrapper>
  )
})

export default HeaderRight
